#include "rclcpp/rclcpp.hpp"
#include "edge_following.h"

int main(int argc, char **argv)
{
  // 1. 初始化ROS2上下文（必须放在最前面）
  rclcpp::init(argc, argv);

  // 2. 创建沿边工作流实例（名称：割草机沿边模块）
  auto edge_workflow = std::make_shared<EdgeFollowingWorkflow>("割草机沿边模块"); 

  // 3. 启动沿边模式（切换到“执行”状态，定时器开始调度步骤）
  edge_workflow->start();

  // 4. ROS2事件循环（阻塞，直到节点关闭）
  rclcpp::spin(edge_workflow->get_node());

  // 5. 关闭ROS2上下文（释放资源）
  rclcpp::shutdown();
  return 0;
}